//
//  main.m
//  作业4
//
//  Created by dllo on 16/7/7.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Color.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        /**需要的处理文件的下载地址 处理⽂件crayons.txt中的⽂本信息，⽂本内容是关于颜⾊的，每⾏都是⼀ 个颜⾊的信息，例如：Almond #EED9C4，前⼀个字符串是颜⾊的名称，后⼀ 个字符串是颜⾊的16进制⾊值，处理⽂本完成如下需求:
        
        使⽤字典管理所有的颜⾊，即字典中存储的是多个键值对，颜⾊名称为 key，16进制颜⾊值（不带#）是value。
        使⽤⼀个新的字典管理颜⾊，对颜⾊进⾏分类管理，即：“A”，“B”，“C”… 即这个字典包含多个键值对，key是26个字⺟，value是数组，数组⾥存放的是 Color对象（包含name和colorValue）。需要⾃⼰创建Color类。
        获取文件中字符串的方法如下:
        
        NSString *path = [[NSBundle mainBundle] pathForResource:@"crayons" ofType:@"txt"];
        NSString *sourceStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        根据得到的sourceStr进行处理    
         */
       
        
        
        //  获取文件路径
        NSString *path = @"/Users/dllo/Desktop/crayons.txt";
        
        //  从文档中读取字符串
        NSString * dataString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        
        NSLog(@"%@",dataString);
        
        //  将字符串以 \n 做分割，得到所有表示颜色的字符串，存储在dataArray中
        NSArray * dataArray = [dataString componentsSeparatedByString:@"\n"];
        
        //  创建空的可变的字典，存储表示颜色的键值对
        NSMutableDictionary * colorDic = [NSMutableDictionary dictionary];
        NSMutableArray *dataArray1 = [NSMutableArray arrayWithArray:dataArray];
        [dataArray1 removeLastObject];
        //  快速枚举dataArray，得到表示颜色的字符串
        for (NSString *colorString in dataArray1) {
            
            //分割colorString，得到颜色的名字和色值
            NSArray * colorComponents = [colorString componentsSeparatedByString:@" #"];
            
                NSString * colorName = colorComponents[0];
                NSString * colorValue = colorComponents[1];
            
                //  将颜色的名字作为key，色值作为value，存储在字典中
                [colorDic setObject:colorValue forKey:colorName];
           
            
           }
        
        NSLog(@"color dic = %@",colorDic);
        NSMutableDictionary *colorManagerDic = [NSMutableDictionary dictionary];
        
        NSArray *allKeys = [colorDic allKeys];
        for (int i = 0; i < allKeys.count; i++) {
            Color *color = [[Color alloc] initWithName:allKeys[i] value:[colorDic objectForKey:allKeys[i]]];
            NSString *oneColor = [allKeys[i] substringToIndex:1];
            NSMutableArray *groupArr = [colorManagerDic objectForKey:oneColor];
            if (groupArr == nil) {
                groupArr = [NSMutableArray arrayWithObject:color];
                [colorManagerDic setObject:groupArr forKey:oneColor];
            } else {
                [groupArr addObject:color];
            }
            
        }
        NSLog(@"%@",colorManagerDic);
    }
    return 0;
}
